跳到主要内容

DAPP

DAPP概念

DApp是Decentralized Application的缩写,中文直译为去中心化应用,去中心化应用是基于区块链底层开发平台建立的。基于区块链的产品和服务通常被称作“去中心化应用”(DApp)。

DApp是一种互联网应用,其后端在去中心化的点对点网络上运行,且其源代码是开源的。网络中不存在能够完全控制DApp的节点。 根据DApp的功能不同,使用不同的数据结构来存储应用数据。例如,比特币DApp使用区块链数据结构。

DApp应用范围会变得更加广泛,并将远远超过目前最流行的 Web 应用。它更灵活、更透明、更分散、更有弹性。与当前的软件模型相比,它的结构有更好的激励性。

这些对等节点(peer)可以是网络中的任何计算节点,因此,发现和防止节点对应用数据进行非法篡改或者与其他人分享错误信息是一个重要挑战,所以需要对等节点之间有一些关于某个节点发布的数据是否正确的共识。在DApp中,没有一个中心服务器来协调节点,或者决定什么是对、什么是错,因此应对这个挑战确实不容易。一致性协议(concensus protocol)可用于解决这个问题。不同的DApp通常使用不同数据结构类型的共识协议,例如比特币使用工作量证明协议(PoW)来达成共识。

为了让用户使用DApp,每一个DApp都需要一个客户端(client)。使用DApp时,用户首先需要运行DApp中自己的节点服务端,然后将客户端连接至节点服务端。DApp的节点只提供应用程序编程接口(Application Programming Interface,API),并允许开发者社区使用API开发多种客户端。一些DApp开发人员会提供一个官方的客户端。DApp客户端应该是开源的,并可以被下载使用,否则整个去中心化的想法就失败了。

去中心化的概念

去中心化和分布式的区别是,分布式意味着计算不是在一个节点上,而是分布到多个节点上完成的。去中心化的意思则是,任何一个节点都不会对其他节点的工作指手画脚。很多像 Google 这样的服务栈都在内部采用分布式架构,以加快计算速度,降低数据延迟。也就是说,集中式系统同时也可以是分布式的。去中心化系统也可以是分布式的,如果某个节点失效了,整个网络还可以照常运转。也就是说,任何使用区块链和其他端到端工具的应用都可以是分布式的去中心化系统。

DAPP应用优点

  • DApp能容错,没有单点故障,因为它们默认是分布式的。
  • 防止某单一机构的干扰。因为没有一个中心机构,任何第三方机构无法向中心机构施压逼迫其删除一些内容。甚至没有单一机构能关闭应用的域名或者IP地址,因为DApp不是通过一个特定的IP地址或者域名访问的。或许某些机构可以通过IP地址追踪网络中的单个节点并关闭它,但是如果网络很庞大,则几乎不可能关闭应用。
  • 用户容易相信该应用。因为它不是由某个通过欺骗用户来牟利的机构所控制的。

DAPP应用的缺点

显然,每个系统都不是完美的。去中心化应用的一些缺点如下: ·修改bug或者更新DApp很困难,因为网络中的每一个节点都需要更新其节点软件。 ·一些应用要求验证用户身份(即KYC),却没有中心化的机构来验证用户身份,开发应用时会遇到问题。 ·创建去中心化应用比较困难,因为它们应用复杂的协议达成共识,且必须从最开始就自行创建并扩大规模。所以我们不能仅仅实现一个想法,然后不断添加功能,使其规模扩大。 ·应用通常独立于第三方API,以获取或者存储数据。DApp不能依赖中心化应用API,但是可以依赖其他DApp。因为目前DApp的生态圈还不太大,所以创建起来比较困难。尽管DApp理论上可以依赖其他DApp,但在实践中紧密融合DApp仍比较困难。

DAPP的特性

1 开源

去中心化的闭源应用要求用户相信该应用的去中心化程度确如核心开发人员所说,并且用户不会通过一个中心源来访问自己的数据。因此,闭源应用会让用户望而却步,不敢使用。尤其对于那些会收取、持有或转移用户资金的应用,闭源更让人排斥。尽管确实可以推出一款闭源的去中心化应用,但从一开始就会面临艰难的局面,而且用户会更加青睐开源的竞争对手。将 dapp 开源会改变它的商业行为结构,因此互联网才会变成共同点,而不是孤岛链所有应用都能开源,但为什么不这样做呢?如果研究一下传统的商业模型,就会发现它们全都要求所销售的产品或服务要超过竞争对手。如果把产品开源,竞争对手就能窃取你的工作成果,改头换面后当成他们自己的产品销售。

2 代币

集中式应用的传统赚钱模式包括交 易手续费、广告收入、推荐佣金、访问用户数据的权力以及订阅服务。如果把 dapp 开源,该怎么赚钱呢?你可能想通过程序自动产生交易手续费,并把这笔钱转到开发者的账户上去,但是可能会有人创建应用的分支,把你的佣金拿走,所以这样是不行的。嵌入广告、订阅服务以及其他任何集中式商业模型所采用的方法都是不可行的。开源的 dapp 开发者要怎么赚钱呢?答案是用稀缺令牌,即 App 币,来分配网络中的稀缺资源。用户如果想用这个网络,就需要 App 币。稀缺资源的所有者得到别人支付的 App 币。在比特币网络中,稀缺资源(计算力)的拥有者(矿工)直接从用户那里获取交易手续费,让他们使用自己提供的服务。因为网络的增长会引入更多用户,而 App 币的总额是固定的,所以 App 币的价值也会不断增长。我们可以把这个模型应用到所有 dapp 上。稀缺资源可以是存储空间、交易、图片、视频、文本、广告等很多东西。这是不是意味着用户使用任何 dapp 都需要付费呢?既是也不是。尽管区块链是需要支付才能使用的,但在 dapp 内部可以构造出不同的激励方式。可以给用户 App 币作为注册奖励,甚至可以让用户通过出售自己的数据或本地存储空间来换取 App 币。除了使用 App 币,dapp创建者还可以通过虚拟资产赚钱,就像去中心化的 MMORPG 中的不动产一样,或者通过特殊命名空间中的领域,甚至声誉

3 去中心化

区块链的革新点在于去中心化的共识。如果你的应用中有个功能是需要让所有人共同承认某个东西,就应该用区块链。